import axios from 'axios'

// 配置axios基础URL - 根据你的Django服务器地址调整
const API_BASE_URL = 'http://localhost:8000/api'

const api = axios.create({
  baseURL: API_BASE_URL,
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器 - 添加错误处理
api.interceptors.request.use(
  config => {
    console.log(`发送请求: ${config.method.toUpperCase()} ${config.url}`)
    return config
  },
  error => {
    console.error('请求错误:', error)
    return Promise.reject(error)
  }
)

// 响应拦截器 - 改进错误处理
api.interceptors.response.use(
  response => {
    console.log(`收到响应: ${response.status} ${response.config.url}`)
    return response
  },
  error => {
    if (error.response) {
      // 服务器返回了错误状态码
      console.error('API错误响应:', {
        status: error.response.status,
        data: error.response.data,
        url: error.config.url
      })
    } else if (error.request) {
      // 请求已发出但没有收到响应
      console.error('API无响应:', error.request)
    } else {
      // 其他错误
      console.error('API错误:', error.message)
    }
    return Promise.reject(error)
  }
)

// API方法
export const apiService = {
  // 获取题目 - 添加per_page参数
  async getQuestions(page, sessionKey, perPage = 5) {
    const response = await api.get(`/questions/${page}/?session_key=${sessionKey}&per_page=${perPage}`)
    return response.data
  },
//  // 获取题目
//  async getQuestions(page, sessionKey) {
//    const response = await api.get(`/questions/${page}/?session_key=${sessionKey}`)
//    return response.data
//  },

  // 提交答案
  async submitAnswers(sessionKey, answers) {
    const response = await api.post('/submit_answers/', {
      session_key: sessionKey,
      answers: answers
    })
    return response.data
  },

  // 获取进度
  async getProgress(sessionKey) {
    const response = await api.get(`/progress/${sessionKey}/`)
    return response.data
  },

  // 计算结果
  async getResult(sessionKey) {
    const response = await api.get(`/result/${sessionKey}/`)
    return response.data
  }
}

export default api
